package com.yixun.qfbao.request.premises;

import java.io.Serializable;
import java.util.List;

import javax.validation.constraints.NotNull;

import com.yixun.qfbao.annotations.History;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
public class GetPremisesReqDto implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	/**
	 * 公司ID
	 */
	@ApiModelProperty(value = "总代公司id")
	@NotNull(message = "总代公司ID不能为空")
	private Long companyId;
	
	/**
	 * 公司UUid
	 */
	@ApiModelProperty(value = "总代公司Uuid")
	@NotNull(message = "总代公司UUID不能为空")
	private String companyUuid;
	
	/**
	 * 分销商公司ID
	 */
	@ApiModelProperty(value = "分销商")
	@NotNull(message = "分销公司ID不能为空")
	private Long agencyCompanyId;
	
	/**
	 * 楼盘名称
	 */
	@ApiModelProperty(value = "楼盘名称")
	private String premisesName;
	
	/**
	 * 楼盘来源标识
	 */
	@ApiModelProperty(value = "楼盘来源标识  0 全部 1恒信 2合作楼盘")
	private String premisesOrigin;
	
	@ApiModelProperty(value = "省份ID")
	private Long provinceId;
	
	@ApiModelProperty(value = "城市ID")
	private Long cityId;
	
	@ApiModelProperty(value = "区域ID")
	private Long areaId;
	
	@ApiModelProperty(value = "最小价格,若priceEnum no为0，不限不传入此参数 本参数优先级大于后续参数优先级")
	private Integer minPrice;
	
	@ApiModelProperty(value = "最大价格，若priceEnum no为0，不限不传入此参数 本参数优先级大于后续参数优先级")
	private Integer maxPrice;
	
	@ApiModelProperty(value = "请求枚举类 PriceEnum 不限或者自定义不传入此参数")
	private Integer priceEnumNumber;
	
	@ApiModelProperty(value = "最小面积，只有自定义时有效。不限时不传递此参数,本参数优先级大于后续参数优先级 ")
	private Integer minArea;
	
	@ApiModelProperty(value = "最大面积，只有自定义时有效。不限时不传递此参数,本参数优先级大于后续参数优先级，不限时不传递此参数")
	private Integer maxArea;
	
	@ApiModelProperty(value = "请求枚举类 AreaEnum 额外no不传代表不限定，传入0代表价格自定义 不限时不传递此参数")
	private List<Integer> AreaEnumNumbers;
	
	@ApiModelProperty(value = "室数量，请求枚举类 HuxingEnum,不选择标签则不传递。")
	private String roomNumbers;

	@ApiModelProperty(value = "用途，请求枚举类EstateTypeEnum")
	private String estateType;
	
	@ApiModelProperty(value = "标签，请求参考 /agency/weapp/premises/getCompanyCodeList")
	private List<Integer> codes; 
	
	@ApiModelProperty(value = "销售状态，请求枚举类 SaleStatusValidEnum，销售状态是否有意义，查看的应该全部为在售的楼盘")
	private List<Integer> saleStatus;
	
	@ApiModelProperty(value = "装修类型，请求枚举类 DecorationTypeEnum")
	private List<Integer> decorationTypes;
	
	@ApiModelProperty(value = "主推状态，请求枚举类 MainPushStatusEnum")
	private Integer mainPushStatus;
	
	@ApiModelProperty(value = "关注状态，请求枚举类 AttetionStatusEnum，使用relType字段进行替代")
	@History
	private Integer attetionStatus;
	
	@ApiModelProperty(value = "关联类型，请求枚举类 RelTypeEnum 1店铺，0关注")
	private Integer relType;
	
}
